export const PetstoreExpandedRaw = {
  "swagger": "2.0",
  "info": {
    "version": "1.0.0",
    "title": "Swagger Petstore",
    "description": "A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification",
    "termsOfService": "http://swagger.io/terms/",
    "contact": {
      "name": "Swagger API Team",
      "email": "foo@example.com",
      "url": "http://madskristensen.net"
    },
    "license": {
      "name": "MIT",
      "url": "http://github.com/gruntjs/grunt/blob/master/LICENSE-MIT"
    }
  },
  "host": "petstore.swagger.io",
  "basePath": "/api",
  "schemes": [
    "http"
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/pets": {
      "get": {
        "description": "Returns all pets from the system that the user has access to\n",
        "operationId": "findPets",
        "parameters": [
          {
            "name": "tags",
            "in": "query",
            "description": "tags to filter by",
            "required": false,
            "type": "array",
            "collectionFormat": "csv",
            "items": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "maximum number of results to return",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "pet response",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Pet"
              }
            }
          },
          "default": {
            "description": "unexpected error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      },
      "post": {
        "description": "Creates a new pet in the store.  Duplicates are allowed",
        "operationId": "addPet",
        "parameters": [
          {
            "name": "pet",
            "in": "body",
            "description": "Pet to add to the store",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NewPet"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "pet response",
            "schema": {
              "$ref": "#/definitions/Pet"
            }
          },
          "default": {
            "description": "unexpected error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/pets/{id}": {
      "get": {
        "description": "Returns a user based on a single ID, if the user does not have access to the pet",
        "operationId": "find pet by id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of pet to fetch",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "pet response",
            "schema": {
              "$ref": "#/definitions/Pet"
            }
          },
          "default": {
            "description": "unexpected error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      },
      "delete": {
        "description": "deletes a single pet based on the ID supplied",
        "operationId": "deletePet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of pet to delete",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "204": {
            "description": "pet deleted"
          },
          "default": {
            "description": "unexpected error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "Pet": {
      "allOf": [
        {
          "$ref": "#/definitions/NewPet"
        },
        {
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "integer",
              "format": "int64"
            }
          }
        }
      ]
    },
    "NewPet": {
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "tag": {
          "type": "string"
        }
      }
    },
    "Error": {
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "type": "string"
        }
      }
    }
  }
}

export const PetstoreExpandedDereferenced = {
  "swagger":"2.0",
  "info":{
    "version":"1.0.0",
    "title":"Swagger Petstore",
    "description":"A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification",
    "termsOfService":"http://swagger.io/terms/",
    "contact":{
      "name":"Swagger API Team",
      "email":"foo@example.com",
      "url":"http://madskristensen.net"
    },
    "license":{
      "name":"MIT",
      "url":"http://github.com/gruntjs/grunt/blob/master/LICENSE-MIT"
    }
  },
  "host":"petstore.swagger.io",
  "basePath":"/api",
  "schemes":[
    "http"
  ],
  "consumes":[
    "application/json"
  ],
  "produces":[
    "application/json"
  ],
  "paths":{
    "/pets":{
      "get":{
        "description":"Returns all pets from the system that the user has access to\n",
        "operationId":"findPets",
        "parameters":[
          {
            "name":"tags",
            "in":"query",
            "description":"tags to filter by",
            "required":false,
            "type":"array",
            "collectionFormat":"csv",
            "items":{
              "type":"string"
            }
          },
          {
            "name":"limit",
            "in":"query",
            "description":"maximum number of results to return",
            "required":false,
            "type":"integer",
            "format":"int32"
          }
        ],
        "responses":{
          "200":{
            "description":"pet response",
            "schema":{
              "type":"array",
              "items":{
                "allOf":[
                  {
                    "required":[
                      "name"
                    ],
                    "properties":{
                      "name":{
                        "type":"string"
                      },
                      "tag":{
                        "type":"string"
                      }
                    }
                  },
                  {
                    "required":[
                      "id"
                    ],
                    "properties":{
                      "id":{
                        "type":"integer",
                        "format":"int64"
                      }
                    }
                  }
                ]
              }
            }
          },
          "default":{
            "description":"unexpected error",
            "schema":{
              "required":[
                "code",
                "message"
              ],
              "properties":{
                "code":{
                  "type":"integer",
                  "format":"int32"
                },
                "message":{
                  "type":"string"
                }
              }
            }
          }
        }
      },
      "post":{
        "description":"Creates a new pet in the store.  Duplicates are allowed",
        "operationId":"addPet",
        "parameters":[
          {
            "name":"pet",
            "in":"body",
            "description":"Pet to add to the store",
            "required":true,
            "schema":{
              "required":[
                "name"
              ],
              "properties":{
                "name":{
                  "type":"string"
                },
                "tag":{
                  "type":"string"
                }
              }
            }
          }
        ],
        "responses":{
          "200":{
            "description":"pet response",
            "schema":{
              "allOf":[
                {
                  "required":[
                    "name"
                  ],
                  "properties":{
                    "name":{
                      "type":"string"
                    },
                    "tag":{
                      "type":"string"
                    }
                  }
                },
                {
                  "required":[
                    "id"
                  ],
                  "properties":{
                    "id":{
                      "type":"integer",
                      "format":"int64"
                    }
                  }
                }
              ]
            }
          },
          "default":{
            "description":"unexpected error",
            "schema":{
              "required":[
                "code",
                "message"
              ],
              "properties":{
                "code":{
                  "type":"integer",
                  "format":"int32"
                },
                "message":{
                  "type":"string"
                }
              }
            }
          }
        }
      }
    },
    "/pets/{id}":{
      "get":{
        "description":"Returns a user based on a single ID, if the user does not have access to the pet",
        "operationId":"find pet by id",
        "parameters":[
          {
            "name":"id",
            "in":"path",
            "description":"ID of pet to fetch",
            "required":true,
            "type":"integer",
            "format":"int64"
          }
        ],
        "responses":{
          "200":{
            "description":"pet response",
            "schema":{
              "allOf":[
                {
                  "required":[
                    "name"
                  ],
                  "properties":{
                    "name":{
                      "type":"string"
                    },
                    "tag":{
                      "type":"string"
                    }
                  }
                },
                {
                  "required":[
                    "id"
                  ],
                  "properties":{
                    "id":{
                      "type":"integer",
                      "format":"int64"
                    }
                  }
                }
              ]
            }
          },
          "default":{
            "description":"unexpected error",
            "schema":{
              "required":[
                "code",
                "message"
              ],
              "properties":{
                "code":{
                  "type":"integer",
                  "format":"int32"
                },
                "message":{
                  "type":"string"
                }
              }
            }
          }
        }
      },
      "delete":{
        "description":"deletes a single pet based on the ID supplied",
        "operationId":"deletePet",
        "parameters":[
          {
            "name":"id",
            "in":"path",
            "description":"ID of pet to delete",
            "required":true,
            "type":"integer",
            "format":"int64"
          }
        ],
        "responses":{
          "204":{
            "description":"pet deleted"
          },
          "default":{
            "description":"unexpected error",
            "schema":{
              "required":[
                "code",
                "message"
              ],
              "properties":{
                "code":{
                  "type":"integer",
                  "format":"int32"
                },
                "message":{
                  "type":"string"
                }
              }
            }
          }
        }
      }
    }
  },
  "definitions":{
    "Pet":{
      "allOf":[
        {
          "required":[
            "name"
          ],
          "properties":{
            "name":{
              "type":"string"
            },
            "tag":{
              "type":"string"
            }
          }
        },
        {
          "required":[
            "id"
          ],
          "properties":{
            "id":{
              "type":"integer",
              "format":"int64"
            }
          }
        }
      ]
    },
    "NewPet":{
      "required":[
        "name"
      ],
      "properties":{
        "name":{
          "type":"string"
        },
        "tag":{
          "type":"string"
        }
      }
    },
    "Error":{
      "required":[
        "code",
        "message"
      ],
      "properties":{
        "code":{
          "type":"integer",
          "format":"int32"
        },
        "message":{
          "type":"string"
        }
      }
    }
  }
}


export const PetstoreExpandedYAML = `
swagger: "2.0"
info:
  version: 1.0.0
  title: Swagger Petstore
  description: A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification
  termsOfService: http://swagger.io/terms/
  contact:
    name: Swagger API Team
    email: foo@example.com
    url: http://madskristensen.net
  license:
    name: MIT
    url: http://github.com/gruntjs/grunt/blob/master/LICENSE-MIT
host: petstore.swagger.io
basePath: /api
schemes:
  - http
consumes:
  - application/json
produces:
  - application/json
paths:
  /pets:
    get:
      description: |
        Returns all pets from the system that the user has access to
      operationId: findPets
      parameters:
        - name: tags
          in: query
          description: tags to filter by
          required: false
          type: array
          collectionFormat: csv
          items:
            type: string
        - name: limit
          in: query
          description: maximum number of results to return
          required: false
          type: integer
          format: int32
      responses:
        "200":
          description: pet response
          schema:
            type: array
            items:
              $ref: '#/definitions/Pet'
        default:
          description: unexpected error
          schema:
            $ref: '#/definitions/Error'
    post:
      description: Creates a new pet in the store.  Duplicates are allowed
      operationId: addPet
      parameters:
        - name: pet
          in: body
          description: Pet to add to the store
          required: true
          schema:
            $ref: '#/definitions/NewPet'
      responses:
        "200":
          description: pet response
          schema:
            $ref: '#/definitions/Pet'
        default:
          description: unexpected error
          schema:
            $ref: '#/definitions/Error'
  /pets/{id}:
    get:
      description: Returns a user based on a single ID, if the user does not have access to the pet
      operationId: find pet by id
      parameters:
        - name: id
          in: path
          description: ID of pet to fetch
          required: true
          type: integer
          format: int64
      responses:
        "200":
          description: pet response
          schema:
            $ref: '#/definitions/Pet'
        default:
          description: unexpected error
          schema:
            $ref: '#/definitions/Error'
    delete:
      description: deletes a single pet based on the ID supplied
      operationId: deletePet
      parameters:
        - name: id
          in: path
          description: ID of pet to delete
          required: true
          type: integer
          format: int64
      responses:
        "204":
          description: pet deleted
        default:
          description: unexpected error
          schema:
            $ref: '#/definitions/Error'
definitions:
  Pet:
    allOf:
      - $ref: '#/definitions/NewPet'
      - required:
        - id
        properties:
          id:
            type: integer
            format: int64

  NewPet:
    required:
      - name
    properties:
      name:
        type: string
      tag:
        type: string

  Error:
    required:
      - code
      - message
    properties:
      code:
        type: integer
        format: int32
      message:
        type: string
`
